package cn.source.system.domain;

import cn.source.common.annotation.Excel;
import cn.source.common.core.domain.BaseEntity;
import cn.source.common.core.domain.entity.SysUser;
import cn.source.common.utils.SecurityUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * 腹透记录对象 deyu_dialysis
 * 
 * @author deyucare.com
 * @date 2025-02-18
 */
@ApiModel(value = "DeyuDialysis", description = "腹透记录对象")
public class DeyuDialysis extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，自增唯一标识一条记录 */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 设备 MAC 地址，唯一标识设备 */
    @NotNull(message = "设备 MAC 地址不能为空")
    @Excel(name = "设备 MAC 地址，唯一标识设备")
    @ApiModelProperty("设备 MAC 地址，唯一标识设备，不能为空")
    private String deviceMac;

    /** 导出时间，记录该操作的导出时间，不能为空 */
    @NotNull(message = "导出时间不能为空")
    @ApiModelProperty("导出时间，记录该操作的导出时间，不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "导出时间，记录该操作的导出时间，不能为空", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completedTime;

    /** 导出时间，记录该操作的导出时间，不能为空 */
    @ApiModelProperty("导出日期，记录该操作的导出时间，不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "导出日期，记录该操作的导出时间，不能为空", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completedDate;

    /** 导入量（ml），记录本次操作的导入量 */
    @ApiModelProperty("导入量（ml），记录本次操作的导入量")
    @Excel(name = "导入量", readConverterExp = "m=l")
    private Long importVolumeMl;

    /** 导出量（ml），记录本次操作的导出量 */
    @ApiModelProperty("导出量（ml），记录本次操作的导出量")
    @Excel(name = "导出量", readConverterExp = "m=l")
    private Long exportVolumeMl;

    /** 本次超滤量（ml），记录本次超滤的液体量 */
    @ApiModelProperty("本次超滤量（ml），记录本次超滤的液体量")
    @Excel(name = "本次超滤量", readConverterExp = "m=l")
    private Long ultrafiltrationVolumeMl;

    /** 24小时总超滤量（ml），记录24小时总超滤量 */
    @ApiModelProperty("24小时总超滤量（ml），记录24小时总超滤量")
    @Excel(name = "24小时总超滤量", readConverterExp = "m=l")
    private Long ultrafiltrationVolumeMl24H;

    /** 生产厂家，记录设备或液体的生产厂家 */
    @ApiModelProperty("生产厂家，记录设备或液体的生产厂家")
    @Excel(name = "生产厂家，记录设备或液体的生产厂家")
    private String manufacturer;

    /** 浓度，记录液体的浓度，保留两位小数 */
    @ApiModelProperty("浓度，记录液体的浓度，保留两位小数")
    @Excel(name = "浓度，记录液体的浓度，保留两位小数")
    private BigDecimal concentration;

    /** 体重（kg），记录患者的体重，不需要小数 */
    @ApiModelProperty("体重（kg），记录患者的体重，不需要小数")
    @Excel(name = "体重", readConverterExp = "k=g")
    private Long weightKg;

    /** 血压（mmHg），记录患者的血压值 */
    @ApiModelProperty("血压（mmHg），记录患者的血压值")
    @Excel(name = "血压", readConverterExp = "m=mHg")
    private String bloodPressureMmhg;

    /** 透析液照片 */
    @ApiModelProperty("透析液照片")
    @Excel(name = "透析液照片")
    private String dialysisImg;

    /** 导出液浑浊度检测结果，记录液体浑浊度的测试结果 */
    @ApiModelProperty("导出液浑浊度检测结果，记录液体浑浊度的测试结果")
    @Excel(name = "导出液浑浊度检测结果，记录液体浑浊度的测试结果")
    private String exportTurbidityResult;

    /** 腹透次数 */
    @ApiModelProperty("腹透次数")
    private int totalTimes;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCompletedTime(Date completedTime)
    {
        this.completedTime = completedTime;
    }

    public Date getCompletedTime() 
    {
        return completedTime;
    }
    public void setImportVolumeMl(Long importVolumeMl) 
    {
        this.importVolumeMl = importVolumeMl;
    }

    public Long getImportVolumeMl() 
    {
        return importVolumeMl;
    }
    public void setExportVolumeMl(Long exportVolumeMl) 
    {
        this.exportVolumeMl = exportVolumeMl;
    }

    public Long getExportVolumeMl() 
    {
        return exportVolumeMl;
    }
    public void setUltrafiltrationVolumeMl(Long ultrafiltrationVolumeMl) 
    {
        this.ultrafiltrationVolumeMl = ultrafiltrationVolumeMl;
    }

    public Long getUltrafiltrationVolumeMl() 
    {
        return ultrafiltrationVolumeMl;
    }
    public void setManufacturer(String manufacturer) 
    {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer() 
    {
        return manufacturer;
    }
    public void setConcentration(BigDecimal concentration) 
    {
        this.concentration = concentration;
    }

    public BigDecimal getConcentration() 
    {
        return concentration;
    }
    public void setWeightKg(Long weightKg) 
    {
        this.weightKg = weightKg;
    }

    public Long getWeightKg() 
    {
        return weightKg;
    }
    public void setBloodPressureMmhg(String bloodPressureMmhg) 
    {
        this.bloodPressureMmhg = bloodPressureMmhg;
    }

    public String getBloodPressureMmhg() 
    {
        return bloodPressureMmhg;
    }
    public void setDialysisImg(String dialysisImg) 
    {
        this.dialysisImg = dialysisImg;
    }

    public String getDialysisImg() 
    {
        return dialysisImg;
    }
    public void setExportTurbidityResult(String exportTurbidityResult) 
    {
        this.exportTurbidityResult = exportTurbidityResult;
    }

    public String getExportTurbidityResult() 
    {
        return exportTurbidityResult;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("deviceMac", getDeviceMac())
            .append("completedTime", getCompletedTime())
            .append("importVolumeMl", getImportVolumeMl())
            .append("exportVolumeMl", getExportVolumeMl())
            .append("ultrafiltrationVolumeMl", getUltrafiltrationVolumeMl())
            .append("manufacturer", getManufacturer())
            .append("concentration", getConcentration())
            .append("weightKg", getWeightKg())
            .append("bloodPressureMmhg", getBloodPressureMmhg())
            .append("dialysisImg", getDialysisImg())
            .append("exportTurbidityResult", getExportTurbidityResult())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public int getTotalTimes() {
        return totalTimes;
    }

    public void setTotalTimes(int totalTimes) {
        this.totalTimes = totalTimes;
    }

    public Long getUltrafiltrationVolumeMl24H() {
        return ultrafiltrationVolumeMl24H;
    }

    public void setUltrafiltrationVolumeMl24H(Long ultrafiltrationVolumeMl24H) {
        this.ultrafiltrationVolumeMl24H = ultrafiltrationVolumeMl24H;
    }

    public Date getCompletedDate() {
        return completedDate;
    }

    public void setCompletedDate(Date completedDate) {
        this.completedDate = completedDate;
    }

    public String getDeviceMac() {
        return deviceMac;
    }

    public void setDeviceMac(String deviceMac) {
        this.deviceMac = deviceMac;
    }
}
